package com.joe.codemother.ai;

import com.joe.codemother.ai.model.HtmlCodeResult;
import com.joe.codemother.ai.model.MultiFileCodeResult;
import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import reactor.core.publisher.Flux;

public interface AiCodeGeneratorService {

    @SystemMessage(fromResource = "prompt/html-prompt.txt")
    HtmlCodeResult generateHtmlMessage(String userMessage);

    @SystemMessage(fromResource = "prompt/multi-file-prompt.txt")
    MultiFileCodeResult generateMultiFileMessage(String userMessage);

    @SystemMessage(fromResource = "prompt/html-prompt.txt")
    Flux<String> generateHtmlMessageStream(String userMessage);

    @SystemMessage(fromResource = "prompt/multi-file-prompt.txt")
    Flux<String> generateMultiFileMessageStream(String userMessage);

}
